#!/bin/bash

# LinkMate 项目启动脚本
# 使用方法: ./start.sh

echo "🚀 启动 LinkMate 项目..."

# 检查Node.js是否安装
if ! command -v node &> /dev/null; then
    echo "❌ 错误: 未找到 Node.js，请先安装 Node.js (>= 16.0.0)"
    exit 1
fi

# 检查MySQL是否运行
if ! pgrep -x "mysqld" > /dev/null; then
    echo "⚠️  警告: MySQL 服务未运行，请先启动 MySQL 服务"
    echo "   在 macOS 上: brew services start mysql"
    echo "   在 Ubuntu 上: sudo systemctl start mysql"
    echo "   在 Windows 上: net start mysql"
fi

# 检查是否存在 .env 文件
if [ ! -f "backend/.env" ]; then
    echo "⚠️  警告: 未找到 backend/.env 文件"
    echo "   请参考 README.md 创建环境变量配置文件"
    echo "   或者复制 backend/env.example 为 .env 并修改配置"
fi

# 安装依赖
echo "📦 安装依赖..."

# 安装后端依赖
echo "   安装后端依赖..."
cd backend
if [ ! -d "node_modules" ]; then
    npm install
fi

# 安装前端依赖
echo "   安装前端依赖..."
cd ../frontend
if [ ! -d "node_modules" ]; then
    npm install
fi

# 回到项目根目录
cd ..

# 启动服务
echo "🎯 启动服务..."

# 启动后端服务
echo "   启动后端服务 (端口 3002)..."
cd backend
node src/app.js &
BACKEND_PID=$!

# 等待后端启动
sleep 3

# 检查后端是否启动成功
if curl -s http://localhost:3002/api/health > /dev/null; then
    echo "   ✅ 后端服务启动成功"
else
    echo "   ❌ 后端服务启动失败"
    kill $BACKEND_PID 2>/dev/null
    exit 1
fi

# 启动前端服务
echo "   启动前端服务 (端口 3000)..."
cd ../frontend
npm start &
FRONTEND_PID=$!

# 等待前端启动
sleep 5

echo ""
echo "🎉 项目启动完成！"
echo ""
echo "📱 访问地址:"
echo "   前端应用: http://localhost:3000"
echo "   后端API:  http://localhost:3002"
echo "   API健康检查: http://localhost:3002/api/health"
echo ""
echo "🛑 停止服务:"
echo "   按 Ctrl+C 停止所有服务"
echo "   或者运行: kill $BACKEND_PID $FRONTEND_PID"
echo ""

# 等待用户中断
trap "echo ''; echo '🛑 正在停止服务...'; kill $BACKEND_PID $FRONTEND_PID 2>/dev/null; echo '✅ 服务已停止'; exit 0" INT

# 保持脚本运行
wait
